#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <cassert>
#include <string>
#include "test1.h"
class Person
{
public:
	Person(const char* name, int age)
		:_name(name)
		, _age(age)
	{}
	Person(const char* name="")
		:Person(name,1)
	{
		cout << _name << endl;
	}
	/*Person(Person&& p)
		:_name(forward<lnb::string>(p._name)),
		_age(p._age)
	{
	}*/
	//Person(Person&& p) = default;
	Person& operator=(Person&& p) = default;
	/*Person(const Person& p)
   
	:_name(p._name)
	,_age(p._age)
	{}*/

	/*virtual ~Person()
	{}**/
private:
string _name;
	int _age;
};

/*class Student :public Person
{
	virtual ~Student()override
	{

	}

};*/
/*int main()
{
	Person p;
	p.print();
	return 0;
}*/
//int main()
//{
//	//char arr[10] = "1111";
//	//Person s1(arr);
//	//Person s2 = s1;
//	//Person s3 = std::move(s1);
//	//Person s4;
//	//s4 = std::move(s2);
//	return 0;
//}


////template <class T>
//void ShowList()
//{
//	//cout << t << endl;
//}
//template<class T,class ...Args>
//void ShowList(const T& value,Args... args)
//{
//	//cout << sizeof...(args);
//	cout << __FUNCTION__ << endl;
//	cout << value <<endl;
//	ShowList(args...);
//
//}

/*template<class T>
void PrintArg(const T& value)
{
	cout << value << endl;
}
template<class ...Args>
void ShowList(Args... args)
{
	const int arr[] = { (PrintArg(args),0)... };
}*/

/*void _ShowList()
{

}
template<class T,class ...Args>
void _ShowList(const T& value, Args... args)
{
	cout << value << endl;
	_ShowList(args...);
}

template<class ...Args>
void ShowList(Args&&... args)
{
	_ShowList(args...);
}
int main()
{
	ShowList(1);
	ShowList(1, 'A');
	ShowList(1, 'A', std::string("sort"));



	return 0;
}*/




//int main()
//{
//	list<lnb::string> l;
//	l.emplace_back(lnb::string("1111"));
//	l.push_back(lnb::string("1111"));
//	cout << endl;
//	l.push_back("111");
//	l.emplace_back("111");
//	int&& a = 10;
//	int b = forward<int>(a);
//	int&& c = move(a);
//	c = 1;
//	cout << a << endl;
//	return 0;
//}